home *** CD-ROM | disk | FTP | other *** search
-
- Internet Draft
- Network Services Monitoring MIB
-
- MADMAN Working Group
- June 18, 1993
- Expires: December 18, 1993
-
- Status of this Memo
-
- This document is an Internet Draft. Internet Drafts are working
- documents of the Internet Engineering Task Force (IETF), its Areas,
- and its Working Groups. Note that other groups may also distribute
- working documents as Internet Drafts.
-
- Internet Drafts are draft documents valid for a maximum of six
- months. Internet Drafts may be updated, replaced, or obsoleted by
- other documents at any time. It is not appropriate to use Internet
- Drafts as reference material or to cite them other than as a "working
- draft" or "work in progress."
-
- Please check the I-D abstract listing contained in each Internet
- Draft directory to learn the current status of this or any other
- Internet Draft.
-
- Abstract
-
- This document defines the generic part of a MIB suitable for
- monitoring applications which provide some kind of network services.
- This MIB is intended to be extended to accomodate monitoring specific
- to a given type of service, for example, a Message Transfer Agent
- (MTA) service or a Directory Service Agent (DSA) service.
-
- Rationale for having an Network Services Monitoring MIB
-
- There is a substantial need to monitor applications which provide
- network services, particularly distributed components such as MTAs and
- DSAs, in order to measure load and to detect broken connectivity,
- system failure, congestion, and other types of problems. Specific
- requirements include:
-
- (1) General monitoring of a large number of components (typical
- for a large organization).
- (2) Integration with general network management.
-
- SNMP is the clear choice for this function. At present only simple
- read-only access is defined; this is sufficient to determine up/down
- status and provide an indication of a broad class of operational
- problems.
-
- Restriction of Scope
-
- The framework provided here is very minimal; there is a lot more that
- could be done. For example:
-
- (1) General network service application configuration.
- (2) Detailed examination and modification of individual entries in
- service-specific request queues.
- (3) Probing to determine the status of a specific request (e.g. the
- location of a mail message with a specific message-id).
- (4) Requesting that certain action be performed (e.g. forcing an
- immediate connection and transfer of pending messages to some
- specific system).
-
- Whilst all these capabilities are both impressive and useful, to be
- effective, security is an absolute requirement. These capabilities
- also mandate a much more complex design with many characteristics
- likely to be fairly implementation-specific. As a result such
- facilities are likely to be both contentious and difficult to
- implement.
-
- This document religiously keeps things simple and focuses on the basic
- monitoring aspect of managing applications providing network services.
- The goal here is to provide a framework which is simple, useful, and
- widely implementable.
-
- Relationship to Directory Services
-
- Use of and management of directory services already is tied up with
- network service application management. There are clearly many things
- which could be dealt with by directory services and protocols. We
- take the line here that static configuration information is both
- provided by and dealt with by directory services and protocols. The
- emphasis here is on transient application status.
-
- By placing static information in the directory, the richness and
- linkage of the directory information framework does not need to be
- repeated in the MIB. Static information is information which has a
- mean time to change of the order of days or longer.
-
- When network service applications that employ directory services
- are monitored, it is recommend that a linkage be established, so
- that:
-
- (1) The managed object contains its own directory name. This
- allows all directory information to be obtained by reference.
- This will let a SNMP monitor capable of performing directory
- queries present this information to the manager in an
- appropriate format. It is intended that this will be the
- normal case.
- (2) The directory will reference the location of the SNMP agent,
- so that an SNMP capable directory query agent could probe
- dynamic characteristics of the object.
- (3) This approach could be extended further, so that the SNMP
- attributes are modelled as directory attributes. This would
- dramatically simplify the design of directory service agents
- that use SNMP to obtain the information they need.
-
- Application Objects
-
- This MIB starts with a set of general purpose attributes which would
- be appropriate for a range of applications that provide network
- services. Both OSI and non-OSI services can be accomodated.
- Additional tables defined in extensions to this MIB provide attributes
- specific to specific network services.
-
- A table is defined which will have one row for each network service
- application running on the system. The only static information held
- on the application is its distinguished name. All other static
- information should be obtained from various directory services. The
- Directory Name is an external key, which allows an SNMP MIB entry to
- be cleanly related to the X.500 Directory. In SNMP terms, the
- applications are grouped in a table called applTable, which is indexed
- by an integer key applIndex.
-
- The type of the application will be determined by one or both of:
-
- (1) Additional MIB variables specific to the applications.
- (2) An association to the application of a specific protocol.
-
- APPLICATION-MIB DEFINITIONS ::= BEGIN
-
- IMPORTS
- OBJECT-TYPE FROM RFC1212
- experimental, Counter, Gauge, TimeTicks FROM RFC1151-SMI
- DisplayString FROM RFC1213-MIB;
-
- application-mib OBJECT IDENTIFIER ::= {experimental xxx}
-
- applTable OBJECT-TYPE
- SYNTAX SEQUENCE OF ApplEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The table holding objects which apply to all different
- kinds of applications providing network services."
- ::= {application-mib 1}
-
- applEntry OBJECT-TYPE
- SYNTAX ApplEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "An entry associated with a network service application."
- INDEX {applIndex}
- ::= {applTable 1}
-
- ApplEntry ::= SEQUENCE {
- applIndex
- INTEGER,
- applName
- DisplayString,
- applVersion
- DisplayString,
- applOperStatus
- INTEGER,
- applLastChange
- TimeTicks,
- applInboundAssociations
- Gauge,
- applOutboundAssociations
- Gauge,
- applAccumulatedInboundAssociations
- Counter,
- applAccumulatedOutboundAssociations
- Counter,
- applLastInboundActivity
- TimeTicks,
- applLastOutboundActivity
- TimeTicks,
- applRejectedInboundAssociations
- Counter,
- applFailedOutboundAssociations
- Counter
- }
-
- applIndex OBJECT-TYPE
- SYNTAX INTEGER (1..2147483647)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "An index to uniquely identify the network service
- application."
- ::= {applEntry 1}
-
- applName
- SYNTAX DisplayString
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The name the network service application chooses to be
- known by."
- ::= {applEntry 2}
-
- applVersion
- SYNTAX DisplayString
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The version of network service application software."
- ::= {applEntry 3}
-
- applOperStatus OBJECT-TYPE
- SYNTAX INTEGER {
- up(1),
- down(1),
- halted(3),
- congested(4),
- restarting(5)
- }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "Indicates the operational status of the network service
- application. 'down' indicates that the network service is
- not available. 'running' indicates that the network service
- is operational and available. 'halted' indicates that the
- service is operational but not available. 'congested'
- indicates that the service is operational but no additional
- inbound associations can be accomodated. 'restarting'
- indicates that the service is currently unavailable but is
- in the process of restarting and will be available soon."
- ::= {applEntry 4}
-
- applLastChange OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The value of sysUpTime at the time the network service
- application entered its current operational state. If"
- the current state was entered prior to the last
- initialization of the local network management subsystem,
- then this object contains a zero value."
- ::= {applEntry 5}
-
- applInboundAssociations OBJECT-TYPE
- SYNTAX Gauge
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of current associations to the network service
- application, where it is the responder. For dynamic single
- threaded processes, this will be the number of application
- instances."
- ::= {applEntry 6}
-
- applOutboundAssociations OBJECT-TYPE
- SYNTAX Gauge
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of current associations to the network service
- application, where it is the initiator. For dynamic single
- threaded processes, this will be the number of application
- instances."
- ::= {applEntry 7}
-
- applAccumulatedInboundAssociations OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of associations to the application entity
- since application initialization, where it was the responder.
- For dynamic single threaded processes, this will be the
- number of application instances."
- ::= {applEntry 8}
-
- applAccumulatedOutboundAssociations OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of associations to the application entity
- since application initialization, where it was the initiator.
- For dynamic single threaded processes, this will be the
- number of application instances."
- ::= {applEntry 9}
-
- applLastInboundActivity OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The time since this application has had an inbound
- association."
- ::= {applEntry 10}
-
- applLastOutboundActivity OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The time since this application has had an outbound
- association."
- ::= {applEntry 11}
-
- applRejectedInboundAssociations OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of inbound associations the application
- entity has rejected, since application initialization."
- ::= {applEntry 12}
-
- applFailedOutboundAssociations OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number associations where the application entity
- is initiator and association establishment has failed,
- since application initialization."
- ::= {applEntry 13}
-
- -- The basic applTable contains a list of the application entities.
- -- A second table is maintained, which holds the list of
- -- associations. This is treated as a separate group to the basic
- -- application table. Where simplified appplication monitoring is
- -- needed, the assocTable group may be omitted. This table is
- -- indexed by applIndex and assocIndex, with the application index
- -- coming first.
-
- assocTable OBJECT-TYPE
- SYNTAX SEQUENCE OF AssocEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The table holding a set of all active application
- associations."
- ::= {application-mib 2}
-
- assocEntry OBJECT-TYPE
- SYNTAX AssocEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "An entry associated with an association for a network
- service application."
- INDEX {applIndex, assocIndex}
- ::= {assocTable 1}
-
- AssocEntry ::= SEQUENCE {
- assocIndex
- INTEGER,
- assocRemoteApplication
- DisplayString,
- assocApplicationProtocol
- OBJECT IDENTIFIER,
- assocApplicationType
- INTEGER,
- assocDuration
- TimeTicks
- }
-
- assocIndex OBJECT-TYPE
- SYNTAX INTEGER (1..2147483647)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "An index to uniquely identify each association for a network
- service application."
- ::= {assocEntry 1}
-
- assocRemoteApplication OBJECT-TYPE
- SYNTAX DisplayString
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The name of the system running remote network service
- application. For an IP-based application this should be
- either a domain name or IP address. For an OSI application
- it should be the string encoded distinguished name of the
- managed object using the format defined in RFC-?. For
- X.400(84) MTAs which do not have a Distinguished Name, the
- RFC-1327 syntax 'mta in globalid' should be used."
- ::= {assocEntry 2}
-
- assocApplicationProtocol OBJECT-TYPE
- SYNTAX OBJECT IDENTIFIER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "An identification of the protocol being used for the
- application. For an OSI Application, this will be the
- Application Context. For Internet applications, the IANA
- maintains a registry of the OIDs which correspond
- to well-known applications. If the application protocol is
- not listed in the registry, the value {applProtoID port} is
- used where 'port' corresponds to primary port being used by
- the application."
- ::= {assocEntry 3}
-
- assocApplicationType OBJECT-TYPE
- SYNTAX INTEGER {
- ua-initiator(1),
- ua-responder(2),
- peer-initiator(3),
- peer-responder(4) }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "Shows whether the remote application is a User Agent, or a
- peer server, and whether the remote end is initiator or
- responder."
- ::= {assocEntry 4}
-
- assocDuration OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The time that the association has been open."
- ::= {assocEntry 5}
-
- applProtoID OBJECT IDENTIFIER ::= {application-mib 3}
-
- END
-
- A means will be defined to allocate an object identifier to each TCP
- application. This will be done in consultation with the IANA.
-
- Expires: December 18, 1993
-
-